With support for XML type data as a native data type in information management systems, such as a relational database system (RDBMS) or object-relational database system (ORDBMS), users can store contents of XML documents in such systems. For example, in the context of a relational database, XML data may be stored in columns of a relational table. Users can invoke XML type operators or methods to query the XML data via a SQL query. However, there is an inherent scalability problem with such queries when the number of XML documents stored in such tables increases, in that the queries take too long to process. The same scalability problem also exists when using SQL/XML publishing functions, such as XMLELEMENT and XMLAGG, in a query to construct XML from data stored in the relational table.
Although relational database systems often include a parallel query (PQ) execution framework to address the SQL query scalability issue, such a framework cannot be applied to XML type operators, methods, SQL/XML publishing functions, XML-based user-defined functions, and the like, because XML type values conventionally returned by such operators, methods and functions may contain execution unit-specific information that is not sharable among other parallel execution units that may be working to service a common request. Hence, prior technologies offer no effective solution to address the scalability issue that exists with queries that manipulate XML data on a relatively large scale, even when users can add additional hardware resources to the system, for example, additional CPUs, additional memory and additional nodes to a computing cluster or grid.
Consequently, the burden is shifted to applications, which are required to include non-trivial code to deal with the scalability issue. For example, an application may have to open multiple database connections and run multiple XML type queries concurrently, and then merge those query results inside the application.
Based on the foregoing, it is desirable to provide a technique for servicing information requests associated with XML data that are serviced by multiple execution units.